package class31To40;

import java.util.Stack;

public class ReverseStack {

    public static void main(String[] args) {
        Stack<Integer> st = new Stack<>();
        st.push(1);
        st.push(2);
        st.push(3);
        st.push(4);
        st.push(5);
        reverse(st);
        while (!st.isEmpty()) {
            System.out.println(st.pop());
        }
    }

    public static void reverse(Stack<Integer> st) {
        if(st.isEmpty()) return ;
        int x = buttOut(st);
        reverse(st);
        st.push(x);
    }

    public static int buttOut(Stack<Integer> st){
        int ans = st.pop();
        if(st.isEmpty()) return ans;
        else {
            int last = buttOut(st);
            st.push(ans);
            return last;
        }
    }
}
